home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 05 Programming / CDT128.ARC / DUMP.C < prev    next >
Text File  |  2019-04-13  |  2KB  |  79 lines

  1. /***********************************************************************/
  2. /***********************************************************************/
  3. /*                                                                     */
  4. /* ╘HIS PROGRAM IS COPYRIGHT 1986 BY ┴LAN ┘ORINKS.  ╔T MAY BE FREELY   */
  5. /* DISTRIBUTED FOR NON COMMERCIAL USAGE IF THIS COPYRIGHT NOTICE IS    */
  6. /* LEFT INTACT. ├OMMERCIAL USAGE OF THIS PROGRAM IS EXPLICITLY         */
  7. /* FORBIDDEN WITHOUT THE WRITTEN PERMISSION OF THE AUTHOR.             */
  8. /*                                                                     */
  9. /***********************************************************************/
  10. /***********************************************************************/
  11.  
  12.  
  13. /*     CDT VERSION 1.0    PART 9 OF 15   ╩ULY 25, 1986                 */
  14.  
  15.  
  16.  
  17. /* MEMORY DUMP FUNCTION */
  18.  
  19. #INCLUDE <STDIO.H>
  20. #INCLUDE "DBUG.H"
  21.  
  22. #IFDEF ├╧╠80        /* DEFINE THE NUMBER OF BYTES TO PRINT PER LINE */
  23.     #DEFINE ┬├╧╒╬╘  16
  24. #ELSE
  25.     #DEFINE ┬├╧╒╬╘  8
  26. #ENDIF
  27.  
  28.  
  29. VOID
  30. DUMP()
  31. AUTO    CHAR    *I ;          /* MUST BE AUTO - PASSED AS FUNC ARG */
  32. AUTO    INT      LNCNT = 0 ;  /* PRINTED LINE COUNTER-AUTO BECAUSE IT WORKS */
  33.         INT      C ;          /* RECIPIENT OF GETCHAR */                   
  34.         ╒╔╬╘     BYTE ;       /* BYTE TO BE PRINTED */
  35. EXTERN  ┴╥╟╙     ALLARG ;     /* ARGUMENT UNION */
  36. EXTERN  INT      PAGE ;       /* PAGE FLAG */
  37. EXTERN  ╒╔╬╘     HATOI() ;    /* HEX TO ASCII CONVERSION FUNCTION */
  38. EXTERN  VOID     PAGER() ;    /* PAGINATE FUNCTION */
  39.  
  40.  
  41.     FOR( ; ╙┴──╥(DSDMP) < ┼┴──╥(DSDMP); ╙┴──╥(DSDMP) += ┬├╧╒╬╘ )
  42.     █
  43.         /* PRINTF FIRST ADDRESS OF PRINT LINE */
  44.  
  45.         PRINTF("\N%04X: ",╙┴──╥(DSDMP)) ;
  46.  
  47.  
  48.         /* PRINT LINE OF HEX VALUES */
  49.  
  50.         FOR( I = ╙┴──╥(DSDMP) ; I < ╙┴──╥(DSDMP) + ┬├╧╒╬╘ ; I++)
  51. #IFDEF ├64
  52.            PRINTF("%02X ", ╨┼┼╦( I ) ); 
  53. #ELSE
  54.            PRINTF("%02X ", PEEK(┬┴╬╦(DSDMP), (UNSIGNED) I)) ; 
  55. #ENDIF
  56.  
  57.  
  58.         /* CONTINUE LINE WITH ASCII VALUES */
  59.  
  60.         FOR( I = ╙┴──╥(DSDMP) ; I < ╙┴──╥(DSDMP) + ┬├╧╒╬╘ ; I++)
  61.         █
  62. #IFDEF ├64
  63.             IF( ISPRINT( BYTE = ╨┼┼╦( I ) ) ) 
  64. #ELSE
  65.             IF( ISPRINT( BYTE = PEEK(┬┴╬╦(DSDMP), (UNSIGNED) I) ) ) 
  66. #ENDIF
  67.                 PRINTF("%C",BYTE) ;
  68.             ELSE
  69.                 PRINTF(".") ;
  70.         ▌
  71.  
  72.  
  73.         /* PAGEING NECESSARY ? */
  74.         IF( PAGE == ╘╥╒┼ )
  75.             PAGER() ;
  76.     ▌
  77.